<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Spice USB Manager: Spice-GTK Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="Spice-GTK Reference Manual">
<link rel="up" href="application-support.html" title="Application Support, from spice-client-glib">
<link rel="prev" href="SpiceSmartcardManager.html" title="Spice Smartcard Manager">
<link rel="next" href="spice-gtk-Utilities.html" title="Utilities">
<meta name="generator" content="GTK-Doc V1.28 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#SpiceUsbDeviceManager.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#SpiceUsbDeviceManager.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#SpiceUsbDeviceManager.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#SpiceUsbDeviceManager.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#SpiceUsbDeviceManager.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="application-support.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="SpiceSmartcardManager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="spice-gtk-Utilities.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="SpiceUsbDeviceManager"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="SpiceUsbDeviceManager.top_of_page"></a>Spice USB Manager</span></h2>
<p>Spice USB Manager — USB device management</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.stability-level"></a><h2>Stability Level</h2>
<acronym title="The intention of a Stable interface is to enable arbitrary third parties to
develop applications to these interfaces, release them, and have confidence that
they will run on all minor releases of the product (after the one in which the
interface was introduced, and within the same major release). Even at a major
release, incompatible changes are expected to be rare, and to have strong
justifications.
"><span class="acronym">Stable</span></acronym>, unless otherwise indicated
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_return">
<col class="functions_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="returnvalue">SpiceUsbDeviceManager</span></a> *
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-get" title="spice_usb_device_manager_get ()">spice_usb_device_manager_get</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-get-devices" title="spice_usb_device_manager_get_devices ()">spice_usb_device_manager_get_devices</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-get-devices-with-filter" title="spice_usb_device_manager_get_devices_with_filter ()">spice_usb_device_manager_get_devices_with_filter</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-is-device-connected" title="spice_usb_device_manager_is_device_connected ()">spice_usb_device_manager_is_device_connected</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-is-redirecting" title="spice_usb_device_manager_is_redirecting ()">spice_usb_device_manager_is_redirecting</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-can-redirect-device" title="spice_usb_device_manager_can_redirect_device ()">spice_usb_device_manager_can_redirect_device</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-connect-device-async" title="spice_usb_device_manager_connect_device_async ()">spice_usb_device_manager_connect_device_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-connect-device-finish" title="spice_usb_device_manager_connect_device_finish ()">spice_usb_device_manager_connect_device_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-disconnect-device" title="spice_usb_device_manager_disconnect_device ()">spice_usb_device_manager_disconnect_device</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-disconnect-device-async" title="spice_usb_device_manager_disconnect_device_async ()">spice_usb_device_manager_disconnect_device_async</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-disconnect-device-finish" title="spice_usb_device_manager_disconnect_device_finish ()">spice_usb_device_manager_disconnect_device_finish</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-get-description" title="spice_usb_device_get_description ()">spice_usb_device_get_description</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gconstpointer"><span class="returnvalue">gconstpointer</span></a>
</td>
<td class="function_name">
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-get-libusb-device" title="spice_usb_device_get_libusb_device ()">spice_usb_device_get_libusb_device</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--auto-connect" title="The “auto-connect” property">auto-connect</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--auto-connect-filter" title="The “auto-connect-filter” property">auto-connect-filter</a></td>
<td class="property_flags">Read / Write / Construct</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--free-channels" title="The “free-channels” property">free-channels</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--redirect-on-connect" title="The “redirect-on-connect” property">redirect-on-connect</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> *</td>
<td class="property_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--session" title="The “session” property">session</a></td>
<td class="property_flags">Read / Write / Construct Only</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signals_return">
<col width="300px" class="signals_name">
<col width="200px" class="signals_flags">
</colgroup>
<tbody>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-auto-connect-failed" title="The “auto-connect-failed” signal">auto-connect-failed</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-added" title="The “device-added” signal">device-added</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-error" title="The “device-error” signal">device-error</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-removed" title="The “device-removed” signal">device-removed</a></td>
<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
</tr>
</tbody>
</table></div>
</div>
<a name="SpiceUsbDevice"></a><div class="refsect1">
<a name="SpiceUsbDeviceManager.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-struct" title="struct SpiceUsbDeviceManager">SpiceUsbDeviceManager</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManagerClass" title="struct SpiceUsbDeviceManagerClass">SpiceUsbDeviceManagerClass</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice-struct" title="SpiceUsbDevice">SpiceUsbDevice</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
    <span class="lineart">╰──</span> SpiceUsbDevice
    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
    <span class="lineart">╰──</span> SpiceUsbDeviceManager
</pre>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
SpiceUsbDeviceManager implements
 <a href="/usr/share/gtk-doc/html/gio/GInitable.html#GInitable-struct">GInitable</a>.</p>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;spice-client.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.description"></a><h2>Description</h2>
<p><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> monitors USB redirection channels and USB
devices plugging/unplugging. If <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--auto-connect" title="The “auto-connect” property"><span class="type">“auto-connect”</span></a>
is set to <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, it will automatically connect newly plugged USB
devices to available channels.</p>
<p>There should always be a 1:1 relation between <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> objects
and <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> objects. Therefor there is no
spice_usb_device_manager_new, instead there is
<a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-get" title="spice_usb_device_manager_get ()"><code class="function">spice_usb_device_manager_get()</code></a> which ensures this 1:1 relation.</p>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="spice-usb-device-manager-get"></a><h3>spice_usb_device_manager_get ()</h3>
<pre class="programlisting"><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="returnvalue">SpiceUsbDeviceManager</span></a> *
spice_usb_device_manager_get (<em class="parameter"><code><a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> *session</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
<p>Gets the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> associated with the passed in <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a>.
A new <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> instance will be created the first time this
function is called for a certain <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a>.</p>
<p>Note that this function returns a weak reference, which should not be used
after the <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> itself has been unref-ed by the caller.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-get.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>session</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> for which to get the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>err</p></td>
<td class="parameter_description"><p>a return location for <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-get.returns"></a><h4>Returns</h4>
<p>a weak reference to the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> associated with the passed in <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-get-devices"></a><h3>spice_usb_device_manager_get_devices ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
spice_usb_device_manager_get_devices (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager</code></em>);</pre>
<p>Finds devices associated with the <em class="parameter"><code>manager</code></em>
</p>
<div class="refsect3">
<a name="spice-usb-device-manager-get-devices.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-get-devices.returns"></a><h4>Returns</h4>
<p>a <a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><code class="literal">GPtrArray</code></a> array of <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><code class="literal">SpiceUsbDevice</code></a>. </p>
<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> SpiceUsbDevice][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-get-devices-with-filter"></a><h3>spice_usb_device_manager_get_devices_with_filter ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><span class="returnvalue">GPtrArray</span></a> *
spice_usb_device_manager_get_devices_with_filter
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filter</code></em>);</pre>
<p>Finds devices associated with the <em class="parameter"><code>manager</code></em>
 complying with the <em class="parameter"><code>filter</code></em>
</p>
<div class="refsect3">
<a name="spice-usb-device-manager-get-devices-with-filter.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>filter</p></td>
<td class="parameter_description"><p>filter string for selecting which devices to return,
see <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--auto-connect-filter" title="The “auto-connect-filter” property"><span class="type">“auto-connect-filter”</span></a> for the filter
string format. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-get-devices-with-filter.returns"></a><h4>Returns</h4>
<p>a
<a href="/usr/share/gtk-doc/html/glib/glib-Pointer-Arrays.html#GPtrArray"><code class="literal">GPtrArray</code></a> array of <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><code class="literal">SpiceUsbDevice</code></a>. </p>
<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> SpiceUsbDevice][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
<p class="since">Since: 0.20</p>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-is-device-connected"></a><h3>spice_usb_device_manager_is_device_connected ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
spice_usb_device_manager_is_device_connected
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager</code></em>,
                                <em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>);</pre>
<p>Finds if the <em class="parameter"><code>device</code></em>
 is connected.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-is-device-connected.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-is-device-connected.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>device</code></em>
has an associated USB redirection channel</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-is-redirecting"></a><h3>spice_usb_device_manager_is_redirecting ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
spice_usb_device_manager_is_redirecting
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>);</pre>
<p>Checks whether a device is being redirected</p>
<div class="refsect3">
<a name="spice-usb-device-manager-is-redirecting.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-is-redirecting.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if device redirection negotiation flow is in progress</p>
</div>
<p class="since">Since: 0.32</p>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-can-redirect-device"></a><h3>spice_usb_device_manager_can_redirect_device ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
spice_usb_device_manager_can_redirect_device
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
<p>Checks whether it is possible to redirect the <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-can-redirect-device.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to disconnect</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>err</p></td>
<td class="parameter_description"><p>a return location for a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-can-redirect-device.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>device</code></em>
can be redirected</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-connect-device-async"></a><h3>spice_usb_device_manager_connect_device_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_usb_device_manager_connect_device_async
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Asynchronously connects the <em class="parameter"><code>device</code></em>
. When completed, <em class="parameter"><code>callback</code></em>
 will be called.
Then it is possible to call <a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-connect-device-finish" title="spice_usb_device_manager_connect_device_finish ()"><code class="function">spice_usb_device_manager_connect_device_finish()</code></a>
to get the result of the operation.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-connect-device-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to redirect</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> object, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>the data to pass to callback function</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-connect-device-finish"></a><h3>spice_usb_device_manager_connect_device_finish ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
spice_usb_device_manager_connect_device_finish
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
<p>Finishes an async operation. See <a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-connect-device-async" title="spice_usb_device_manager_connect_device_async ()"><code class="function">spice_usb_device_manager_connect_device_async()</code></a>.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-connect-device-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>err</p></td>
<td class="parameter_description"><p>a return location for a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-connect-device-finish.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if connection is successful</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-disconnect-device"></a><h3>spice_usb_device_manager_disconnect_device ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_usb_device_manager_disconnect_device
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager</code></em>,
                                <em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>);</pre>
<div class="warning"><p><code class="literal">spice_usb_device_manager_disconnect_device</code> is deprecated and should not be used in newly-written code.</p></div>
<p>Disconnects the <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-disconnect-device.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to disconnect</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-disconnect-device-async"></a><h3>spice_usb_device_manager_disconnect_device_async ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
spice_usb_device_manager_disconnect_device_async
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>,
                                <em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> callback</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
<p>Asynchronously disconnects the <em class="parameter"><code>device</code></em>
. When completed, <em class="parameter"><code>callback</code></em>
 will be called.
Then it is possible to call <a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-disconnect-device-finish" title="spice_usb_device_manager_disconnect_device_finish ()"><code class="function">spice_usb_device_manager_disconnect_device_finish()</code></a>
to get the result of the operation.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-disconnect-device-async.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> manager.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a connected <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to disconnect.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cancellable</p></td>
<td class="parameter_description"><p>optional <a href="/usr/share/gtk-doc/html/gio/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> object, <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to ignore. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncReadyCallback"><span class="type">GAsyncReadyCallback</span></a> to call when the request is satisfied. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>the data to pass to <em class="parameter"><code>callback</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 0.32</p>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-manager-disconnect-device-finish"></a><h3>spice_usb_device_manager_disconnect_device_finish ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
spice_usb_device_manager_disconnect_device_finish
                               (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *self</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> *res</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
<p>Finishes an async operation. See <a class="link" href="SpiceUsbDeviceManager.html#spice-usb-device-manager-disconnect-device-async" title="spice_usb_device_manager_disconnect_device_async ()"><code class="function">spice_usb_device_manager_disconnect_device_async()</code></a>.</p>
<div class="refsect3">
<a name="spice-usb-device-manager-disconnect-device-finish.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>self</p></td>
<td class="parameter_description"><p>a <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>res</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gio/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>err</p></td>
<td class="parameter_description"><p>a return location for a <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-manager-disconnect-device-finish.returns"></a><h4>Returns</h4>
<p> <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if disconnection is successful</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-get-description"></a><h3>spice_usb_device_get_description ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
spice_usb_device_get_description (<em class="parameter"><code><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
<p>Get a string describing the device which is suitable as a description of
the device for the end user. The returned string should be freed with
<a href="/usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when no longer needed.</p>
<p>The <em class="parameter"><code>format</code></em>
 positional parameters are the following:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>'%<code class="literal">1</code>$s' manufacturer</p></li>
<li class="listitem"><p>'%<code class="literal">2</code>$s' product</p></li>
<li class="listitem"><p>'%<code class="literal">3</code>$s' descriptor (a [vendor_id:product_id] string)</p></li>
<li class="listitem"><p>'%<code class="literal">4</code>$d' bus</p></li>
<li class="listitem"><p>'%<code class="literal">5</code>$d' address</p></li>
</ul></div>
<p>(the default format string is "%<code class="literal">s</code> %<code class="literal">s</code> %<code class="literal">s</code> at %<code class="literal">d</code>-%<code class="literal">d</code>")</p>
<div class="refsect3">
<a name="spice-usb-device-get-description.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to get the description of</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>format</p></td>
<td class="parameter_description"><p>an optional <code class="function">printf()</code> format string with
positional parameters. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-get-description.returns"></a><h4>Returns</h4>
<p> a newly-allocated string holding the description, or <a href="/usr/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if failed</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="spice-usb-device-get-libusb-device"></a><h3>spice_usb_device_get_libusb_device ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gconstpointer"><span class="returnvalue">gconstpointer</span></a>
spice_usb_device_get_libusb_device (<em class="parameter"><code>const <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> *device</code></em>);</pre>
<p>Finds the <code class="literal">libusb_device</code> associated with the <em class="parameter"><code>device</code></em>
.</p>
<div class="refsect3">
<a name="spice-usb-device-get-libusb-device.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> to get the descriptor information of</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="spice-usb-device-get-libusb-device.returns"></a><h4>Returns</h4>
<p>the <code class="literal">libusb_device</code> associated to <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><code class="literal">SpiceUsbDevice</code></a>. </p>
<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 0.27</p>
</div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="SpiceUsbDeviceManager-struct"></a><h3>struct SpiceUsbDeviceManager</h3>
<pre class="programlisting">struct SpiceUsbDeviceManager;</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> struct is opaque and should not be accessed directly.</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManagerClass"></a><h3>struct SpiceUsbDeviceManagerClass</h3>
<pre class="programlisting">struct SpiceUsbDeviceManagerClass {
    GObjectClass parent_class;

    /* signals */
    void (*device_added) (SpiceUsbDeviceManager *manager,
                          SpiceUsbDevice *device);
    void (*device_removed) (SpiceUsbDeviceManager *manager,
                            SpiceUsbDevice *device);
    void (*auto_connect_failed) (SpiceUsbDeviceManager *manager,
                                 SpiceUsbDevice *device, GError *error);
    void (*device_error) (SpiceUsbDeviceManager *manager,
                          SpiceUsbDevice *device, GError *error);
};
</pre>
<p>Class structure for <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a>.</p>
<div class="refsect3">
<a name="SpiceUsbDeviceManagerClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="SpiceUsbDeviceManagerClass.device-added"></a>device_added</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal class handler for the <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-added" title="The “device-added” signal"><span class="type">“device-added”</span></a> signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="SpiceUsbDeviceManagerClass.device-removed"></a>device_removed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal class handler for the <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-removed" title="The “device-removed” signal"><span class="type">“device-removed”</span></a> signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="SpiceUsbDeviceManagerClass.auto-connect-failed"></a>auto_connect_failed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal class handler for the <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-auto-connect-failed" title="The “auto-connect-failed” signal"><span class="type">“auto-connect-failed”</span></a> signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="SpiceUsbDeviceManagerClass.device-error"></a>device_error</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal class handler for the <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-error" title="The “device-error” signal"><span class="type">“device_error”</span></a> signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDevice-struct"></a><h3>SpiceUsbDevice</h3>
<pre class="programlisting">typedef struct _SpiceUsbDevice SpiceUsbDevice;</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> struct is opaque and cannot be accessed directly.</p>
</div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="SpiceUsbDeviceManager--auto-connect"></a><h3>The <code class="literal">“auto-connect”</code> property</h3>
<pre class="programlisting">  “auto-connect”             <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Set this to TRUE to automatically redirect newly plugged in device.</p>
<p>Note when <a class="link" href="SpiceGtkSession.html" title="Spice GTK Session"><span class="type">SpiceGtkSession</span></a>'s auto-usbredir property is TRUE, this
property is controlled by <a class="link" href="SpiceGtkSession.html" title="Spice GTK Session"><span class="type">SpiceGtkSession</span></a>.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager--auto-connect-filter"></a><h3>The <code class="literal">“auto-connect-filter”</code> property</h3>
<pre class="programlisting">  “auto-connect-filter”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>Set a string specifying a filter to use to determine which USB devices
to autoconnect when plugged in, a filter consists of one or more rules.
Where each rule has the form of:</p>
<p><em class="parameter"><code>class</code></em>
,<em class="parameter"><code>vendor</code></em>
,<em class="parameter"><code>product</code></em>
,<em class="parameter"><code>version</code></em>
,<em class="parameter"><code>allow</code></em>
</p>
<p>Use -1 for <em class="parameter"><code>class</code></em>
/<em class="parameter"><code>vendor</code></em>
/<em class="parameter"><code>product</code></em>
/<em class="parameter"><code>version</code></em>
 to accept any value.</p>
<p>And the rules themselves are concatenated like this:</p>
<p><em class="parameter"><code>rule1</code></em>
|<em class="parameter"><code>rule2</code></em>
|<em class="parameter"><code>rule3</code></em>
</p>
<p>The default setting filters out HID (class 0x03) USB devices from auto
connect and auto connects anything else. Note the explicit allow rule at
the end, this is necessary since by default all devices without a
matching filter rule will not auto-connect.</p>
<p>Filter strings in this format can be easily created with the RHEV-M
USB filter editor tool.</p>
<p>Flags: Read / Write / Construct</p>
<p>Default value: "0x03,-1,-1,-1,0|-1,-1,-1,-1,1"</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager--free-channels"></a><h3>The <code class="literal">“free-channels”</code> property</h3>
<pre class="programlisting">  “free-channels”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Get the number of available channels for redirecting USB devices.</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 0</p>
<p class="since">Since: 0.31</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager--redirect-on-connect"></a><h3>The <code class="literal">“redirect-on-connect”</code> property</h3>
<pre class="programlisting">  “redirect-on-connect”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>Set a string specifying a filter selecting USB devices to automatically
redirect after a Spice connection has been established.</p>
<p>See <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager--auto-connect-filter" title="The “auto-connect-filter” property"><span class="type">“auto-connect-filter”</span></a> for the filter string
format.</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager--session"></a><h3>The <code class="literal">“session”</code> property</h3>
<pre class="programlisting">  “session”                  <a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> *</pre>
<p><a class="link" href="SpiceSession.html" title="Spice Session"><span class="type">SpiceSession</span></a> this <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> is associated with</p>
<p>Flags: Read / Write / Construct Only</p>
</div>
</div>
<div class="refsect1">
<a name="SpiceUsbDeviceManager.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="SpiceUsbDeviceManager-auto-connect-failed"></a><h3>The <code class="literal">“auto-connect-failed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager,
               <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a>        *device,
               <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>                *error,
               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-auto-connect-failed" title="The “auto-connect-failed” signal"><span class="type">“auto-connect-failed”</span></a> signal is emitted
whenever the auto-connect property is true, and a newly plugged in
device could not be auto-connected.</p>
<div class="refsect3">
<a name="SpiceUsbDeviceManager-auto-connect-failed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> boxed object corresponding to the device which failed to auto connect</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing the reason why the autoconnect failed</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager-device-added"></a><h3>The <code class="literal">“device-added”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager,
               <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a>        *device,
               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-added" title="The “device-added” signal"><span class="type">“device-added”</span></a> signal is emitted whenever
a new USB device has been plugged in.</p>
<div class="refsect3">
<a name="SpiceUsbDeviceManager-device-added.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> boxed object corresponding to the added device</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager-device-error"></a><h3>The <code class="literal">“device-error”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager,
               <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a>        *device,
               <a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a>                *error,
               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-error" title="The “device-error” signal"><span class="type">“device-error”</span></a> signal is emitted whenever an
error happens which causes a device to no longer be available to the
guest.</p>
<div class="refsect3">
<a name="SpiceUsbDeviceManager-device-error.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> boxed object corresponding to the device which has an error</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>error</p></td>
<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glib/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> describing the error</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
</div>
<hr>
<div class="refsect2">
<a name="SpiceUsbDeviceManager-device-removed"></a><h3>The <code class="literal">“device-removed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> *manager,
               <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a>        *device,
               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>               user_data)</pre>
<p>The <a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDeviceManager-device-removed" title="The “device-removed” signal"><span class="type">“device-removed”</span></a> signal is emitted whenever
an USB device has been removed.</p>
<div class="refsect3">
<a name="SpiceUsbDeviceManager-device-removed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>manager</p></td>
<td class="parameter_description"><p>the <a class="link" href="SpiceUsbDeviceManager.html" title="Spice USB Manager"><span class="type">SpiceUsbDeviceManager</span></a> that emitted the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p><a class="link" href="SpiceUsbDeviceManager.html#SpiceUsbDevice"><span class="type">SpiceUsbDevice</span></a> boxed object corresponding to the removed device</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.28</div>
</body>
</html>